﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using TheOutLetLibrary.Dominio;

namespace TheOutLetLibrary.Infraestrutura {

    public class AccessRemessaDAO: IRemessaDAO {

        private OleDbTransaction transacao;
        public OleDbTransaction Transacao {
            set { transacao = value; }
        }

        public int ProximaIdRemessa() {
            OleDbCommand comando = new OleDbCommand();
            comando.Connection = transacao.Connection;
            comando.Transaction = transacao;
            comando.CommandText = "SELECT MAX(XID_REMESSA) FROM tb_remessa";
            int idRemessa = Convert.ToInt32(comando.ExecuteScalar());
            return ++idRemessa;
        }

        public int IncluiRemessa(Remessa remessaNF) {
            OleDbCommand comando = new OleDbCommand();
            comando.Connection = transacao.Connection;
            comando.Transaction = transacao;
            comando.CommandText =
                "INSERT INTO tb_remessa (xID_EMPRESA, DT_RECEBIMENTO_REMESSA) " +
                " VALUES (@xID_EMPRESA, @DT_RECEBIMENTO_REMESSA);";
            comando.Parameters.Add("xID_EMPRESA", OleDbType.Integer).Value = remessaNF.XID_EMPRESA;
            comando.Parameters.Add("DT_RECEBIMENTO_REMESSA", OleDbType.Date).Value = remessaNF.XDT_RECEBIMENTO_REMESSA;
            comando.ExecuteNonQuery();
            comando.CommandText = "SELECT @@IDENTITY";
            return Convert.ToInt32(comando.ExecuteScalar());
        }

    }
}
